In storage devices such as disk drives and disk arrays, the primary media on which the data resides is slow compared to the “consumers” or clients of the storage devices, such as servers or personal computers. That is, a computer often is able to request and receive data at a faster rate than a disk drive is able to provide the requested data. The storage subsystem can anticipate a consumer's need for data by prefetching such data, that is, retrieving the data from the storage medium before the consumer has actually requested the data. Prefetching data, however, can be wasteful of system resources. For example, prefetching data into a cache buffer can be wasteful of the capacity of the cache buffer if more data than is needed is prefetched.